home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWGadgts / Sources / FWGrowBx.cpp < prev    next >
Encoding:
Text File  |  1995-11-08  |  3.5 KB  |  128 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWGrowBx.cpp
  4. //    Release Version:    $ 1.0d11 $
  5. //
  6. //    Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWFrameW.hpp"
  11.  
  12. #ifndef FWGROWBX_H
  13. #include "FWGrowBx.h"
  14. #endif
  15.  
  16. #ifndef FWFRAME_H
  17. #include "FWFrame.h"
  18. #endif
  19.  
  20. #ifndef FWSCLBAR_H
  21. #include "FWSclBar.h"
  22. #endif
  23.  
  24. #ifndef FWEVENT_H
  25. #include "FWEvent.h"
  26. #endif
  27.  
  28. // ----- OpenDoc Includes -----
  29.  
  30. #ifndef SOM_ODFacet_xh
  31. #include <Facet.xh>
  32. #endif
  33.  
  34. #ifndef SOM_ODWindow_xh
  35. #include <Window.xh>
  36. #endif
  37.  
  38. //========================================================================================
  39. // Runtime Informations
  40. //========================================================================================
  41.  
  42. #if FW_LIB_EXPORT_PRAGMAS
  43. #pragma lib_export on
  44. #endif
  45.  
  46. #ifdef FW_BUILD_MAC
  47. #pragma segment fwgadgts
  48. #endif
  49.  
  50. FW_DEFINE_CLASS_M1(FW_CGrowBox, FW_CGadget)
  51.  
  52. //========================================================================================
  53. // CLASS FW_CGrowBox
  54. //========================================================================================
  55.  
  56. //----------------------------------------------------------------------------------------
  57. // FW_CGrowBox::FW_CGrowBox
  58. //----------------------------------------------------------------------------------------
  59.  
  60. FW_CGrowBox::FW_CGrowBox(Environment* ev, 
  61.                          FW_CView* container, ODID id,
  62.                          const FW_CPoint& location) :
  63.     FW_CGadget(ev, container, id, FW_CRect(location, FW_kFixed0,FW_kFixed0)) 
  64. {
  65.     SetSize(ev, FW_CScrollBar::GetDefaultScrollBarSize());
  66. }
  67.  
  68. //----------------------------------------------------------------------------------------
  69. // FW_CGrowBox::~FW_CGrowBox
  70. //----------------------------------------------------------------------------------------
  71.  
  72. FW_CGrowBox::~FW_CGrowBox()
  73. {
  74. }
  75.  
  76. //----------------------------------------------------------------------------------------
  77. // FW_CGrowBox::Draw
  78. //----------------------------------------------------------------------------------------
  79.  
  80. void FW_CGrowBox::Draw(Environment* ev, ODFacet* facet, ODShape* invalidShape)
  81. {
  82. #ifdef FW_BUILD_MAC
  83.     FW_CAcquiredODWindow aqODWindow = facet->GetFrame(ev)->AcquireWindow(ev);
  84.     FW_ASSERT((ODWindow*)aqODWindow);
  85.     ODPlatformWindow window = aqODWindow->GetPlatformWindow(ev);
  86.     
  87.     
  88.     Rect portRect = window->portRect;
  89.     FW_CPoint sbSize = FW_CScrollBar::GetDefaultScrollBarSize();
  90.     FW_CPoint location = GetLocation(ev) + sbSize;
  91.     if (location == FW_CPoint(FW_IntToFixed(portRect.right), FW_IntToFixed(portRect.bottom)))
  92.         ::DrawGrowIcon(window);
  93.     else
  94.     {
  95.         GrafPtr curPort;
  96.         ::GetPort(&curPort);
  97.         
  98.         ::SetPort(window);
  99.         ::PortSize(location.x.AsInt(), location.y.AsInt());
  100.         
  101.         ::DrawGrowIcon(window);
  102.         
  103.         ::SetPort(window);    //just to be sure
  104.         ::PortSize(portRect.right - portRect.left, portRect.bottom - portRect.top);
  105.         
  106.         ::SetPort(curPort);
  107.     }
  108.     
  109. #endif
  110. }
  111.  
  112. //----------------------------------------------------------------------------------------
  113. // FW_CGrowBox::DoActivateEvent
  114. //----------------------------------------------------------------------------------------
  115.  
  116. FW_Boolean    FW_CGrowBox::DoActivateEvent(Environment *ev, 
  117.                                         const FW_CActivateEvent& theActivateEvent)
  118. {
  119. #ifdef FW_BUILD_MAC
  120.     ODFacet* facet = theActivateEvent.GetFacet(ev);
  121.     
  122.     // we simply draw the grow box again (DrawGrowIcon takes care of the activate state)
  123.     Draw(ev, facet, NULL);    
  124. #endif
  125.     return FALSE;  // let other views handle activate events
  126. }
  127.  
  128.